﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;

namespace Librerias
{
    /// <summary>
    /// Clase Entidad de Negocio ENBibliografia
    /// </summary>
    public class ENBibliografia:ENBase
    {
        #region variables
        private CADBibliografia cad = new CADBibliografia();
         private int id;
        #endregion

         #region SET/GET
         public int Id
        {
            get { return id; }
            set { id = value; }
        }
        private string asig;

        public string Asig
        {
            get { return asig; }
            set { asig = value; }
        }
        private string enlace;

        public string Enlace
        {
            get { return enlace; }
            set { enlace = value; }
        }
        private string titulo;

        public string Titulo
        {
            get { return titulo; }
            set { titulo = value; }
        }
        private string autor;

        public string Autor
        {
            get { return autor; }
            set { autor = value; }
        }
        private string edicion;

        public string Edicion
        {
            get { return edicion; }
            set { edicion = value; }
        }
        private string isbn;

        public string Isbn
        {
            get { return isbn; }
            set { isbn = value; }
        }
        private string web;

        public string Web
        {
            get { return web; }
            set { web = value; }
        }
        private string datos;

        public string Datos
        {
            get { return datos; }
            set { datos = value; }
        }
        #endregion

        /// <summary>
        /// Constructor por defecto
        /// </summary>
        public ENBibliografia():base()
        {
            asig = string.Empty;
            enlace = string.Empty;
            titulo = string.Empty;
            autor = string.Empty;
            edicion = string.Empty;
            isbn = string.Empty;
            web = string.Empty;
            datos = string.Empty;   
        }

        /// <summary>
        /// Constructor parametrizado
        /// </summary>
        /// <param name="unasig">asignatura</param>
        /// <param name="unenlace">enlace</param>
        /// <param name="untitulo">título</param>
        /// <param name="unautor">autor</param>
        /// <param name="unedicion">edición</param>
        /// <param name="unisbn">isbn</param>
        /// <param name="unweb">web</param>
        /// <param name="undatos">datos</param>
        public ENBibliografia(string unasig,string unenlace,string untitulo,string unautor,string unedicion,string unisbn,string unweb, string undatos ): base()
        {
           // id = unid;
            asig =unasig;
            enlace =unenlace;
            titulo = untitulo;
            autor =unautor;
            edicion = unedicion;
            isbn = unisbn;
            web =unweb;
            datos = undatos;    
        }

        /// <summary>
        /// Constructor parametrizado
        /// </summary>
        /// <param name="unid">id</param>
        /// <param name="unasig">asignatura</param>
        /// <param name="unenlace">enlace</param>
        /// <param name="untitulo">titulo</param>
        /// <param name="unautor">autor</param>
        /// <param name="unedicion">edicion</param>
        /// <param name="unisbn">isbn</param>
        /// <param name="unweb">web</param>
        /// <param name="undatos">datos</param>
        public ENBibliografia(int unid,string unasig, string unenlace, string untitulo, string unautor, string unedicion, string unisbn, string unweb, string undatos)
            : base()
        {
            id = unid;
            asig = unasig;
            enlace = unenlace;
            titulo = untitulo;
            autor = unautor;
            edicion = unedicion;
            isbn = unisbn;
            web = unweb;
            datos = undatos;

        }

        /// <summary>
        /// Constructor a partir de usuario y asignatura
        /// </summary>
        /// <param name="usuario">usuario</param>
        /// <param name="asign">asignatura</param>
        public ENBibliografia(string usuario, string asign)
            : base()
        {
            // id = unid;
            asig = asign;
            enlace = string.Empty;
            titulo = string.Empty;
            autor = string.Empty;
            edicion = string.Empty;
            isbn = string.Empty;
            web = string.Empty;
            datos = string.Empty;

        }

        /// <summary>
        /// A partir de una EN
        /// </summary>
        /// <param name="b">EN</param>
        public ENBibliografia(ENBibliografia b)
            : base()
        {
            asig=b.asig;
            enlace = b.enlace;
            titulo = b.titulo;
            autor = b.autor;
            edicion = b.edicion;
            isbn = b.isbn;
            web = b.web;
            datos = b.datos;

        }

        /// <summary>
        /// Persiste una bibliografía
        /// </summary>
        /// <returns>Si ok</returns>
        public int CrearBibliografia()
        {
            return cad.CrearBibliografia(this);
        }

        /// <summary>
        /// Consulta una bibliografía
        /// </summary>
        /// <returns>DataTable</returns>
        public DataTable ConsultaBibliografia()
        {
            return cad.ConsultaBibliografia();
        }

        /// <summary>
        /// Consulta bibliografia mediante cadena y tipo
        /// </summary>
        /// <param name="cadena">cadena</param>
        /// <param name="tipo">criterio</param>
        /// <returns>DataTable</returns>
        public DataTable ConsultaBibliografia(string cadena, int tipo)
        {
            return cad.ConsultaBibliografia(cadena, tipo);
        }

        /// <summary>
        /// Consulta Bibliografia por asignatura  
        /// </summary>
        /// <param name="asig">asigntura</param>
        /// <returns>DataTable</returns>
        public DataTable ConsultaBibliografiaPorAsignatura(string asig)
        {
            return cad.ConsultaBibliografiaPorAsignatura(asig);
        }

        /// <summary>
        /// Borra una bibliografia
        /// </summary>
        public void EliminarBibliografia()
        {
            cad.EliminarBibliografia(id);
        }

        /// <summary>
        /// Modifica una bibliografía
        /// </summary>
        public void ModificarBibliografia()
        {
            cad.ModificarBibliografia(this);
        }
    }
}
